if(typeof yqt  == 'undefined')
	yqt = {};
;(function(Y,W,$){
	var U = Y.util = {
		/**
		 * 将字符串格式化JSON格式
		 * @param  string json 字符串JSON
		 * @return json      json
		 */
		jsonParse : function(json){
			if(JSON.parse(json)){
				return JSON.parse(json);
			}else{
				return false;
			}
		},

		/**
		 * 数据请求
		 * @param  string   url    请求地址
		 * @param  array   arr    post数据
		 * @param  funciton callbake     返回数据
		 * @param  stirng   method 请求方式
		 * @return data          返回数据
		 */
		ajaxHttp : function(url,arr,callbake,method = 'POST'){
			//数据请求为get时，将数组转换url访问
			if(method === 'get'){
				var i = 0;				
				$.each(arr,function(k,v){
					if(i === 0){
						url += '?'+k+'='+v;
					}else{
						url += '&'+k+'='+v;
					}
					i++;
				});
				arr = {};
			}
			 $.ajax({
                type: method,
                url: url,
                data: arr,
                success: function(msg) {
                    callbake(msg);
                },
                error : function(XMLHttpRequest, textStatus, errorThrown){
                	callbake(errorThrown);
                }
            });
		}
	},
	A = Y.address = {		
		/**
		 * json还原html
		 * @param  {[type]} json json
		 * @param  {[type]} type 省province
		 * @return {[type]}
		 */
		rstHtml : function(json,type){
			var strhtml = [];
			if(type === 'province'){
				$.each(json,function(k,v){
					strhtml.push(A.rstDl(v,k));
				});				
			}else{
				strhtml.push(A.rstDl(json,''));	
			}
			$('div[data-city="'+type+'"]').html(strhtml.join(''));			
		},
		/**
		 * 返回填充代码
		 */
		rstDl:function(json,letter){
			var str = '<dl class="city-select-city">';
			if(letter){
				str += '<dt>'+letter+'</dt>';
				str += '<dd>';
			}else{
				str += '<dd class="first">';
			}
			var _push = [];
			for(var i = 0;i<json.length;i++){
				_push.push('<a title="'+json[i].name+'" data-id="'+json[i].id+'" href="javascript:void(0);">'+json[i].name+'</a>')
			}
			str += _push.join('');
			str += '</dd>';
			str += '</dl>';
			return str;
		},
		/**
		 * 栏目切换
		 * @param  {[type]} clsname [description]
		 * @return {[type]}         [description]
		 */
		navTab : function(clsname,_this){
			var content = $('.city-select-content div[data-city^="'+clsname+'"]');
			if(_this){
				_this.parents('.city-select').find('a').removeClass('current');
				_this.addClass('current');
				content.nextAll().html('');
			}
			$('.city-select-tab a[data-city^="'+clsname+'"]').addClass('current').siblings().removeClass('current');			
			content.removeClass('hide').siblings().addClass('hide');			
		},	
		showAddress : function(_this,clsname){

		},	
		/**
		 * 城市、县区、街道、社区、村
		 * @param  {[type]} _this   当前点击事件
		 * @param  {[type]} clsname 对选择项目内容操作
		 * @param  {[type]} urls    请求链接
		 * @return {[type]}         null
		 */
		loadInfo : function(_this,clsname,urls){
			var id = 0;
			A.showAddress(_this,clsname)
			if(_this){
				A.navTab(clsname,_this);
				id = _this.data('id');
			}
			U.ajaxHttp(urls,{id:id},function(json){
				if(json.erron == 0){
					A.rstHtml(json.list,clsname);
				}
			},'POST');
		},
		_setVlue : function(){
			var box = $('.city-select-content a.current'),idx = 0,str = '';
			$("input[data-id='city']").val('');
			box.each(function(k,v){
				var _t = $(this),
					id = _t.data('id'),
					name = _t.html(),
					cls = _t.parents('.city-select').data('city');
				$('input[name="'+cls+'"]').val(id);
				if(idx > 0){
					str +='<span>/</span>';
				}
				str += name;
				idx++;				
			});
			$('.city-title').html(str);
		}
	}	
})(yqt,window,jQuery);
$(document).ready(function() {
	//加载省
	yqt.address.loadInfo('','province','/api/getProvince');
	$('.city-select-content').delegate('a','click',function(e){
		var _t = $(this).parents('.city-select');
		_t.nextAll().html('');//清空选择之后数据
		var citys = _t.data('city');		
		switch(citys){
			case 'province':
				yqt.address.loadInfo($(this),'city','/api/getCity');
			break;
			case 'city':
				yqt.address.loadInfo($(this),'county','/api/getCounty');
			break;
			case 'county':
				yqt.address.loadInfo($(this),'town','/api/getTown');
			break;
			case 'town':
				yqt.address.loadInfo($(this),'village','/api/getVillage');
			break;
			case 'village':
				$(this).addClass('current').siblings().removeClass('current')
			break;
		}
		yqt.address._setVlue();
	});
	$('.city-select-tab').delegate('a','click',function(e){
		var _t = $(this);
		yqt.address.navTab(_t.data('city'));		
	});
});